4160 N = VAL(Z8$): IF N <1 OR N >20 THEN HTAB 1: CALL -958: GOTO 4150
4170 IF N = 20 THEN 63000
4180 ON N GOSUB 4500,5500,6000,6800,6600,7200,7600,8000,8200,8600,9100,9500
4190 GOTO 4000
4500 REM
4510 TEXT : HOME
4520 INVERSE : PRINT "BASIC TUTORIAL:INTRODUCTION TO COMPUTERS";: NORMAL : POKE 34,1: HOME : VTAB 10
4529 INVERSE : PRINT "DEFINITION:-";: NORMAL
4530 PRINT " A COMPUTER IS A BOX OF ELECTRONICS, A DEVICE WHICH IS CAPABLE OF STORING BOTH A SET OF INSTRUCTIONS AND A SET OF DATA IN ITS MEMORY, AND THEN CARRYING OUT THOSE INSTRUCTIONS IN LOGICAL ORDER."
4535 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4536 VTAB 10
4540 PRINT "A COMPUTER MAY BE COMPARED WITH A NEW WAGES CLERK. THE WAGES CLERK HAS ";: INVERSE : PRINT "INPUT";: NORMAL : PRINT " TO HIM/HER A SET OF INSTRUCTIONS AND A SET OF DATA TO OPERATE ON.THE CLERK WILLTHEN ";
4541 INVERSE : PRINT "PROCESS";: NORMAL : PRINT " THE DATA ACCORDING TO THE SET OF PRE-DEFINED INSTRUCTIONS. HE WILLTHEN PRODUCE RESULTS OR ";: INVERSE : PRINT "OUTPUT";: NORMAL
4542 PRINT ". HE IS PERFORMING A 'DATA PROCESSING' FUNCTION,ALBEIT MANUALLY."
4545 PRINT
4560 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4565 VTAB 10
4570 PRINT "JUST AS WITH THE WAGES CLERK, THE COMPUTER HAS ";: INVERSE : PRINT "INPUT";: NORMAL : PRINT " TO IT A SET OF INSTRUCTIONS (A PROGRAM) AND A SET OF DATA TO OPERATE ON.";
4571 PRINT " IT WILL THEN"
4572 INVERSE : PRINT "PROCESS";: NORMAL : PRINT " THE DATA ACCORDING TO THE SET OFINSTRUCTIONS, PRODUCING A SET OF RESULTSOR ";: INVERSE : PRINT "OUTPUT";: NORMAL : PRINT ". THE COMPUTER IS PERFORMING A'DATA PROCESSING' FUNCTION AUTOMATICALLY."
4580 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4585 PRINT : PRINT
4590 PRINT "THUS THERE ARE THREE MAIN ";: INVERSE : PRINT "FUNCTIONS";: NORMAL : PRINT " OF ACOMPUTER SYSTEM, AS ILLUSTRATED BELOW:"
4595 PRINT : VTAB 10
4599 PRINT TAB( 2);
4600 INVERSE : PRINT "INPUT";: NORMAL
4604 PRINT TAB( 7);" => ";
4605 PRINT TAB( 14);
4610 INVERSE : PRINT "PROCESS";: NORMAL
4614 PRINT TAB( 27);"=>";
4615 PRINT TAB( 33);
4620 INVERSE : PRINT "OUTPUT": NORMAL
4630 PRINT : PRINT
4640 PRINT "PROGRAM ARITHMETIC RESULTS"
4645 PRINT
4650 PRINT " & & LOGICAL"
4655 PRINT
4660 PRINT " DATA OPERATIONS"
4670 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4675 PRINT
4680 PRINT "THESE THREE FUNCTIONS ARE OFTEN SAID TO BE CARRIED OUT BY THREE UNITS, I.E.": PRINT : INVERSE : PRINT "INPUT UNIT": PRINT : PRINT "CENTRAL PROCESSING UNIT (CPU)": PRINT : PRINT "OUTPUT UNIT": PRINT
4689 NORMAL : PRINT
4690 PRINT "THE PHYSICAL 'DEVICES' CORRESPONDING TO THESE 'UNITS' MAY ALL BE HOUSED IN ONE CABINET, OR IN SEPARATE CABINETS. THE KEYBOARD AT WHICH YOU ARE SITTING ACTS AS AN ";: INVERSE : PRINT "INPUT";: NORMAL : PRINT " DEVICE.";
4700 PRINT " THE SCREEN ACTS AS AN ";: INVERSE : PRINT "OUTPUT";: NORMAL : PRINT " DEVICE. THE ";: INVERSE : PRINT "PROCESSING";: NORMAL : PRINT " IS DONEUNDERNEATH THE COVER."
4701 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4705 PRINT : PRINT
4710 PRINT "AMONG OTHER THINGS YOU WILL FIND THE FOLLOWING UNDER THE COVER:"
4715 PRINT
4720 INVERSE : PRINT "MEMORY";: NORMAL : PRINT "(STORE)"
4730 PRINT "SOME MEMORY IS NEEDED TO STORE THE USER'S PROGRAM AND DATA. THESE LATTER ARE LOST WHEN COMPUTER IS SWITCHED OFF, UNLESS PREVIOUSLY STORED ON SOME OTHER MEDIUM."
4735 PRINT
4740 PRINT "(MICRO)";: INVERSE : PRINT "PROCESSOR": NORMAL
4750 PRINT "THIS DOES ALL THE ADDING,SUBTRACTING, MULTIPLYING, COMPARING, ETC."
4755 PRINT
4760 INVERSE : PRINT "CONTROL UNIT": NORMAL
4770 PRINT "THIS KEEPS OVERALL CONTROL OF THE COMPUTER SYSTEM, FLOW OF DATA AND PROGRAM, ETC."
4780 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4789 PRINT : PRINT
4790 PRINT "THERE ARE MANY OTHER WAYS OF PROVIDING INPUT FOR THE COMPUTER, AND RECEIVING OUTPUT FROM THE COMPUTER. DISK DRIVES AND CASSETTE DRIVES ARE COMMONLY LINKED TO MICROCOMPUTERS BOTH FOR INPUT AND OUTPUT. FLOPPY DISKS AND ";
4800 PRINT "CASSETTES ARE NEEDED AS 'MEDIA' FOR STORING DATA AND PROGRAMS."
4810 PRINT : PRINT
4820 PRINT "ANOTHER COMMON DEVICE TO BE LINKED TO A COMPUTER IS A PRINTER FOR 'HARD COPY' OUTPUT WHICH THE USER MAY TAKE AWAY WITHHIM. IF A PRINTER HAS A KEYBOARD IT MAY ALSO BE USED AS AN INPUT DEVICE."
4830 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4835 PRINT : PRINT
4840 PRINT "HERE ARE SOME OF THE OTHER DEVICES/MEDIAWHICH MAY BE USED WITH COMPUTERS:"
4910 PRINT "DEVICES ATTACHED TO THE MAIN COMPUTER FOR INPUT, BACKING STORE (DISK UNITS ETC), AND OUTPUT, ARE REFERRED TO AS": INVERSE : PRINT "PERIPHERALS";: NORMAL : PRINT ".": PRINT : PRINT
4930 PRINT "THE COMPUTER ITSELF AND THE VARIOUS PERIPHERALS ARE REFERRED TO AS ";: INVERSE : PRINT "HARDWARE";: NORMAL : PRINT ".";
4940 PRINT
4950 PRINT "SETS OF INSTRUCTIONS (PROGRAMS) ARE REFERRED TO AS ";: INVERSE : PRINT "SOFTWARE";: NORMAL : PRINT "."
4951 PRINT
4952 PRINT "IF THERE IS SOFTWARE PERMANENTLY HELD INMEMORY (E.G. READ ONLY MEMORY) IT IS REFERRED TO AS ";: INVERSE : PRINT "FIRMWARE";: NORMAL : PRINT "."
4955 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
4956 PRINT : PRINT
4960 PRINT "A COMPUTER ";: INVERSE : PRINT "SYSTEM";: NORMAL : PRINT " IS MADE UP OF THREE MAIN ELEMENTS:"
5000 PRINT "ALL THREE ARE NECESSARY FOR A COMPUTER SYSTEM TO BE VIABLE, BUT ";: INVERSE : PRINT "PEOPLE";: NORMAL
5010 PRINT " ARE THE MOST IMPORTANT. ALL SYSTEMS SHOULD BE GEARED FOR THE ";: INVERSE : PRINT "USER";: NORMAL : PRINT ", MOREOVER IT IS THE HUMAN BEING WHO CREATES THE HARDWARE,THESOFTWARE, AND USES THE COMPUTER."
5020 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5030 PRINT : PRINT
5040 PRINT "SOFTWARE MAY BE CLASSIFIED INTO THREE GROUPS:": PRINT : PRINT
5050 PRINT "1.";: INVERSE : PRINT "OPERATING SYSTEMS";: NORMAL : PRINT ":- THESE PROVIDE OVERALL CONTROL OF THE SYSTEM.": PRINT
5060 PRINT "2.";: INVERSE : PRINT "UTILITY PROGRAMS";: NORMAL : PRINT ":- THESE ARE FOR COMMON TASKS, E.G. SORTING, CONVERTING FROM DISK TO TAPE, ETC.": PRINT
5070 PRINT "3.";: INVERSE : PRINT "APPLICATIONS PACKAGES";: NORMAL : PRINT ":- E.G. PAYROLL, INVOICING, ETC."
5120 PRINT "A COMPUTER PROGRAM MUST BE HELD IN MEMORY BEFORE IT WILL WORK. THE DATA MUST ALSO BE AVAILABLE FOR USE BY THE PROGRAM.": PRINT : PRINT : PRINT
5130 PRINT "EVERY CHARACTER ENTERED AT THE KEYBOARD,OR READ FROM DISK OR OTHER DEVICE IS REPRESENTED IN MEMORY AS THE BINARY EQUIVALENT OF A NUMERIC CODE (";: INVERSE : PRINT "ASCII";: NORMAL : PRINT ").": PRINT : PRINT
5140 PRINT "A CHARACTER CAN BE ANY LETTER, DIGIT, ORSPECIAL SYMBOL, E.G. $,&,#,ETC.": PRINT
5145 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5146 PRINT : PRINT
5150 PRINT "THE COMPUTER EASILY REPRESENTS INFORMATION IN BINARY (TWO-STATE) FORM. A SWITCH MAY BE ON OR OFF. THERE IS EITHER POWER (OR AN ELECTRICAL PULSE) INA PARTICULAR CIRCUIT, OR NOT. NO POWER MAY REPRESENT ZERO, WHILE POWER";
5152 PRINT " REPRESENTS ONE.": PRINT
5154 PRINT "EACH CHARACTER (ALPHABETIC OR NUMERIC), HAVING BEEN CONVERTED INTO THE BINARY EQUIVALENT OF ITS 'ASCII' CODE, IS THEN OPERATED UPON BY THE COMPUTER AT TREMENDUOUS SPEEDS."
5160 PRINT : PRINT
5180 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5200 PRINT : PRINT "BEFORE A PROGRAMMER APPROACHES A COMPUTER (EXCEPT FOR TRIVIAL PROBLEMS) HE MUST HAVE HIS 'HOMEWORK' DONE.": PRINT
5210 PRINT "A PROBLEM MUST FIRST BE FULLY ANALYSED, AND THE SOLUTION WORKED OUT. THE PROBLEMCOULD BE ANYTHING FROM WORKING OUT A SMALL MATHEMATICAL PROBLEM TO ANALYSING EXISTING LARGE BUSINESS SYSTEMS AND RE-DESIGNING THEM.": PRINT
5220 PRINT "THE LOGICAL FLOW OF PROCEDURES MUST BE CLEARLY LAID OUT, IN CONSULTATION WITH THE END USER(S). USE MAY BE MADE OF FLOWCHARTS (STEPS TO BE CARRIED OUT REPRESENTED IN DIAGRAMMATIC FORM), AND/ OR ALGORITHMS (STEPS SET OUT ";
5222 PRINT "IN WRITTEN FORM).": PRINT
5224 PRINT "NOTE:- THE ABOVE WORK CAN TAKE MUCH LONGER THAN THE ACTUAL PROGRAMMING."
5230 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5250 PRINT : PRINT : PRINT "PROGRAMMERS HAD ORIGINALLY TO WRITE THEIR PROGRAMS IN ";: INVERSE : PRINT "MACHINE CODE";: NORMAL
5260 PRINT " (LOW LEVEL LANGUAGE) WHICH WAS VERY TEDIOUS, COMPLICATED, TIME-CONSUMING AND ERROR- PRONE. NOWADAYS HIGH-LEVEL NEAR ENGLISH/MATHEMATICAL LANGUAGES, WHICH ARE FAR EASIER TO USE, ARE AVAILABLE.": PRINT
5270 INVERSE : PRINT "INTERPRETERS";: NORMAL
5275 PRINT " OR ";
5280 INVERSE : PRINT "COMPILERS";: NORMAL
5290 PRINT " CONVERT THE HIGH LEVEL LANGUAGES INTO MACHINE CODE AUTOMATICALLY."
5295 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5300 PRINT : PRINT "THERE ARE MANY HIGH LEVEL LANGUAGES AVAILABLE, (EXAMPLES BELOW), EACH WITH IT'S OWN CHARACTERISTICS AND GRAMMATICALRULES (SYNTAX)."
5330 PRINT : INVERSE : PRINT "FORTRAN";: NORMAL
5340 PRINT " SUITABLE FOR MATHEMATICAL/ SCIENTIFIC APPLICATIONS."
5345 PRINT
5350 INVERSE : PRINT "COBOL";: NORMAL
5360 PRINT " SUITABLE FOR BUSINESS APPLICATIONS"
5370 INVERSE : PRINT "BASIC";: NORMAL
5380 PRINT " GENERAL PURPOSE LANGUAGE, EASY TO LEARN, AND WIDELY AVAILABLE, ESPECIALLY ON SMALL COMPUTERS."
5382 PRINT : INVERSE : PRINT "PASCAL";: NORMAL : PRINT " A GENERAL PURPOSE/EDUCATIONAL TYPE LANGUAGE."
5384 PRINT : INVERSE : PRINT "RPG";: NORMAL : PRINT " SUITABLE FOR GENERATING BUSINESS REPORTS."
5390 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5400 PRINT : PRINT "COMPUTER PROGRAMS RARELY WORK PROPERLY WHEN FIRST WRITTEN. TO FIND AND CORRECT ERRORS IS CALLED ";: INVERSE : PRINT "DEBUGGING";: NORMAL : PRINT ". THERE ARE ";: INVERSE : PRINT "SYNTAX";: NORMAL : PRINT " ERRORS, AND ";: INVERSE : PRINT "LOGICAL";: NORMAL : PRINT " ERRORS."
5420 PRINT : PRINT "WHEN THE RULES (SYNTAX) OF A LANGUAGE ARE BROKEN IN A PROGRAM, THE INTERPRETEROR COMPILER WILL SHOW THEM UP. THESE ARERELATIVELY EASY TO CORRECT, VERY OFTEN BEING MERELY TYPING ERRORS.": PRINT
5422 PRINT "ANOTHER MORE DIFFICULT TYPE OF ERROR TO FIND AND CORRECT IS THE LOGICAL TYPE OF ERROR. (YOU MUST DO YOUR 'HOMEWORK' - PROBLEM ANALYSIS, INCORPORATING ALGORITHMS AND/OR FLOWCHARTS ";: FLASH : PRINT "PRIOR TO": NORMAL
5423 PRINT "PROGRAMMING).": PRINT
5430 PRINT "YOU MAY NOW BEGIN SECTION 2 WHEN YOU RETURN TO THE MAIN 'MENU'."
5470 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5480 RETURN
5500 REM
5510 TEXT : HOME : PRINT TAB( 12);: INVERSE : PRINT "BEGINNING BASIC": NORMAL : PRINT : POKE 34,2
5530 PRINT "A ";: INVERSE : PRINT "BASIC";: NORMAL : PRINT " PROGRAM IS A SET OF INSTRUCTIONSREFERRED TO AS ";: INVERSE : PRINT "STATEMENTS";: NORMAL : PRINT ", IN ASCENDING LINE-NUMBER ORDER (IN RANGE 0-63999 IN OUR CASE). ";
5540 PRINT "LINE NUMBERS ARE USUALLY IN INTERVALS OF TEN TO ALLOW FOR EASY AMENDMENT/INSERTION OF ADDITIONAL LINES."
5550 PRINT "THESE INSTRUCTIONS ARE STORED IN COMPUTER MEMORY, AND ARE ";: INVERSE : PRINT "EXECUTED": NORMAL : PRINT "(OBEYED) IN SEQUENCE, USUALLY IN ASCENDING ORDER, BUT SUBJECT TO BRANCHING INSTRUCTIONS."
5559 PRINT
5560 PRINT "INSTRUCTIONS USUALLY OPERATE ON DATA CONTAINED WITHIN THE PROGRAM, ARE PROVIDED AT THE KEYBOARD DURING PROGRAM EXECUTION, OR ARE OBTAINED FROM A DATA FILE HELD EXTERNALLY (E.G. FLOPPY DISK OR CASSETTE TAPE)."
5580 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5590 PRINT "BEFORE A PROGRAM CAN BE RUN (EXECUTED) IT MUST BE AVAILABLE IN COMPUTER MEMORY."
5595 PRINT
5600 PRINT "YOU MAY ";: INVERSE : PRINT "LOAD";: NORMAL : PRINT " A PROGRAM INTO MEMORY FROM TAPE OR DISK, IF AVAILABLE, OR YOU MAY ENTER YOUR OWN PROGRAM AT THE KEYBOARD, PROVIDED YOU HAVE IT PRE-PREPARED."
5605 PRINT : PRINT
5610 PRINT "THIS TUTORIAL SHOULD HELP YOU TO WRITE YOUR OWN ";: INVERSE : PRINT "BASIC";: NORMAL : PRINT " COMPUTER PROGRAMS."
5615 PRINT : PRINT
5620 PRINT "OPTIONS 1 & 2 FROM THE CURRENT MENU GIVEBACKGROUND INFORMATION AND A SIMPLE OVERVIEW. OPTION 3 STARTS SOME SIMPLE PROGRAMMING."
5630 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5635 VTAB 8: FLASH : PRINT "N.B.": NORMAL : PRINT
5636 INVERSE : PRINT "THE IMPORTANCE OF THE LEARNER TRYING OUTHIS/HER OWN PROGRAMS CANNOT BE OVER- STRESSED. LEARNING TO PROGRAM IS ESSENTIALLY A PRACTICAL EXERCISE !!": NORMAL
5637 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
5640 RETURN
6000 REM
6010 TEXT : HOME : PRINT TAB( 10);: INVERSE : PRINT "READ/DATA/LET/PRINT": NORMAL
6030 PRINT "JUST AS THERE ARE THREE MAIN FUNCTIONS OF A COMPUTER, ";: INVERSE : PRINT "INPUT, PROCESS, OUTPUT";: NORMAL : PRINT ", SO THERE ARE THREE CORRESPONDING TYPES OF INSTRUCTION (AMONG OTHERS)."
6035 PRINT : INVERSE : PRINT "SIMPLE PROGRAM TO CALCULATE GROSS PAY FOR HOURLY PAID WORKER": NORMAL
6260 PRINT "50 DATA 40": PRINT "60 DATA 5": PRINT "70 END": PRINT : POKE 34, PEEK(37): HOME : INVERSE : PRINT "PROGRAM EXPLANATION": NORMAL
6320 PRINT "IF DATA ITEMS ARE KNOWN WHEN WRITING A PROGRAM, ";: INVERSE : PRINT "READ";: NORMAL : PRINT " STATEMENTS WITH MATCHING ": INVERSE : PRINT "DATA";: NORMAL : PRINT " STATEMENTS MAY BE USED."
6329 PRINT
6330 PRINT "JUST AS IN MATHEMATICS WE OFTEN USE LETTERS TO STAND FOR DATA ITEMS, SO IN": INVERSE : PRINT "BASIC";: NORMAL : PRINT " PROGRAMMING WE MAY USE LETTERS AS": INVERSE : PRINT "VARIABLES";: NORMAL
6340 PRINT " TO STAND FOR DATA ITEMS. WE NORMALLY CHOOSE APPROPRIATE VARIABLE NAMES, E.G. 'H' FOR HOURS, 'R' FOR RATE,AND 'P' FOR PAY. WE THEN REFER TO THE DATA ITEMS BY MEANS OF THE VARIABLES."
6360 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6370 PRINT "LINES 10 AND 20 REQUEST DATA TO BE STORED IN MEMORY LOCATIONS WHICH WE ARE NAMING 'H' AND 'R'. IT NEED NOT CONCERN US WHERE IN MEMORY THEY ARE AS THE COMPUTER RECORDS THIS."
6375 PRINT
6380 PRINT "THE FIRST DATA ITEM 40 WILL BE STORED INTHE FIRST VARIABLE LOCATION, 'H', WHILE THE SECOND DATA ITEM 5 WILL BE STORED IN'R'."
6385 PRINT
6390 PRINT "NOTE THAT DATA LINES MAY BE ANYWHERE IN A PROGRAM, BUT THEY ARE TAKEN IN THE ORDER IN WHICH THEY ARE MET."
6400 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6405 PRINT : PRINT "NOTE THAT WHERE NUMERIC VARIABLES ARE BEING USED DATA ITEMS MUST BE STRICTLY NUMERIC, I.E. '$5.00' , '40LBS', '50P', ETC., ARE NOT ALLOWED. IF USED THE COMPUTER WILL RESPOND WITH 'SYNTAX ERROR'."
6406 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6410 INVERSE : PRINT "VARIABLE N<CTRL-A>AMES - BRIEF NOTE": NORMAL
6415 PRINT
6420 PRINT "A SINGLE LETTER A-Z MAY BE USED TO REPRESENT REAL NUMBERS, AS MAY A SINGLE LETTER FOLLOWED BY A DIGIT, E.G. A0-A9, B0-B9.....Z0-Z9. ARRAY VARIABLES AND INTEGER AND STRING VARIABLES WILL BE TREATED LATER."
6430 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6431 PRINT : PRINT
6432 PRINT "NOTE:- SOME SYSTEMS ADDITIONALLY ALLOW TWO LETTERS AS VARIABLE NAMES (INCLUDINGAPPLE). LONGER VARIABLE NAMES ARE ALSO ALLOWED, BUT USUALLY ONLY THE FIRST TWO POSITIONS ARE SIGNIFICANT, SO ";: FLASH : PRINT "BEWARE";: NORMAL : PRINT "."
6439 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6440 INVERSE : PRINT "THE ASSIGNMENT STATEMENT": NORMAL
6445 PRINT
6450 PRINT "LINE 30 MEANS:EVALUATE THE EXPRESSION ONTHE RIGHT AND ASSIGN THE RESULT TO THE (SINGLE) VARIABLE ON THE LEFT OF THE EQUALS SIGN. NOTE THAT THE ASTERISK '*' IS USED FOR MULTIPLICATION, AS THE LETTER 'X' MAY NOT BE USED."
6460 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6461 PRINT : PRINT
6465 PRINT "NOTE THAT CONSTANTS, I.E. SPECIFIED VALUES INSTEAD OF VARIABLES ARE ALLOWED,E.G.": PRINT : PRINT "30 LET P=40*R": PRINT : PRINT "THESE MAY BE USED WHEN THERE ARE DEFINITE VALUES WHICH DO NOT CHANGE."
6466 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6467 PRINT : PRINT "IN SOME VERSIONS OF BASIC (INCLUDING APPLESOFT) THE 'LET' IS OPTIONAL, I.E.": PRINT : PRINT "30 P=H*R": PRINT : PRINT "IS ALSO ALLOWED. WHILE OMITTING THE 'LET' MAY SAVE MEMORY SPACE, PROGRAMS"
6468 PRINT "ARE MORE MEANINGFUL WITH 'LET'. AS NOT ALL VERSIONS ALLOW THIS OPTIONALITY THE PROGRAMS WILL ALSO BE EASIER TO TRANSFERTO OTHER SYSTEMS."
6469 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6470 INVERSE : PRINT "PRINT": NORMAL
6480 PRINT "IF WE SAY ' PRINT P ' WE MEAN OUTPUT THECONTENTS OF STORE LOCATION 'P'. WE DISTINGUISH MESSAGES TO BE PRINTED OUT FROM VARIABLES BY PUTTING MESSAGES IN DOUBLE QUOTES "; CHR$(34);"."
6485 PRINT
6490 INVERSE : PRINT "PRINT"; CHR$(34);"P"; CHR$(34);: NORMAL : PRINT " MEANS PRINT THE LETTER": PRINT "(CHARACTER) 'P'."
6495 PRINT
6500 INVERSE : PRINT "PRINT P";: NORMAL : PRINT " MEANS PRINT THE CONTENTS OF STORE LOCATION (THE VARIABLE) 'P'."
6510 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6520 PRINT "THE STATEMENT IN LINE 40 SHOULD BE MORE OR LESS SELF-EXPLANATORY. THE WORDS 'PAY EQUALS ' WILL BE PRINTED, FOLLOWED BY THE VALUE 200 OF THE VARIABLE 'P' WHICH HAS BEEN EVALUATED IN LINE 30."
6525 PRINT
6530 PRINT "THE SEMI-COLON IN LINE 40 FORCES THE VALUE OF 'P' TO BE PRINTED IMMEDIATELY FOLLOWING THE WORDS 'PAY EQUALS '."
6535 PRINT
6540 PRINT "LINE 70 INDICATES THE LOGICAL END OF THEPROGRAM."
6550 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6552 VTAB 16: PRINT "THE NEXT SECTION DEALS WITH PROGRAM ENTRY, LISTING AND RUNNING."
6558 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6599 RETURN
6600 REM
6601 TEXT : HOME
6610 INVERSE : PRINT "ARITHMETIC OPERATORS/ORDER OF PRECEDENCE": NORMAL
6615 W = 1
6616 W1 = 24
6620 PRINT TAB( W);"+ ADDITION";
6625 PRINT TAB( W1);"4 ) OF EQUAL"
6630 PRINT TAB( W);"- SUBTRACTION";
6635 PRINT TAB( W1);"4 ) IMPORTANCE"
6636 PRINT
6640 PRINT TAB( W);"* MULTIPLICATION";
6645 PRINT TAB( W1);"3 ) OF EQUAL"
6650 PRINT TAB( W);"/ DIVISION";
6655 PRINT TAB( W1);"3 ) IMPORTANCE"
6656 PRINT
6660 PRINT TAB( W);"^ EXPONENTIATION";
6665 PRINT TAB( W1);"2"
6670 PRINT TAB( W);" (TO POWER OF)
6671 PRINT
6680 PRINT TAB( W);"() PARENTHESES";
6685 PRINT TAB( W1);"1"
6690 PRINT TAB( W);" (ROUND BRACKETS)"
6695 PRINT : PRINT : POKE 34, PEEK(37): HOME
6700 INVERSE : PRINT "NOTES:": NORMAL : PRINT
6720 PRINT "WHERE THERE ARE TWO OR MORE OPERATORS OFEQUAL PRECEDENCE TO BE CARRIED OUT IN ANEXPRESSION THE COMPUTER WILL WORK FROM LEFT TO RIGHT."
6725 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6730 PRINT "NO ASSUMED ARITHMETIC OPERATORS ARE ALLOWED, E.G. 'A(B+C)' SHOULD BE ENTEREDAS 'A*(B+C)'.": PRINT
6740 PRINT "WHERE THERE IS ANY AMBIGUITY, OR WHERE YOU WISH TO CHANGE THE NORMAL ORDER OF PRECEDENCE PARENTHESES MAY BE USED."
6750 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
6799 RETURN
6800 REM
6810 TEXT : HOME : INVERSE : PRINT "PROGRAM - HOURLY PAID WORKER": NORMAL : PRINT "10 READ H": PRINT "20 READ R": PRINT "30 LET P=H*R"
6890 PRINT "40 PRINT "; CHR$(34);"PAY EQUALS "; CHR$(34);";P": PRINT "50 DATA 40": PRINT "60 DATA 5": PRINT "70 END": PRINT : POKE 34, PEEK(37): HOME
6960 INVERSE : PRINT "PROCEDURE FOR PROGRAM ENTRY/LIST/RUN": NORMAL
6965 PRINT : POKE 34, PEEK(37): HOME
6970 PRINT "1.CLEAR MEMORY BY TYPING THE COMMAND ";: INVERSE : PRINT "NEW";: NORMAL : PRINT " AND PRESSING THE 'RETURN' KEY."
6975 PRINT
6980 PRINT "2.ENTER THE PROGRAM, LINE BY LINE, AND PRESS THE 'RETURN' KEY AT THE END OF EACH LINE.": PRINT
6990 PRINT "3.EDIT/RETYPE ANY INCORRECT LINE."
6995 PRINT
7000 PRINT "4.LIST PROGRAM FOR CHECKING USING THE COMMAND ";: INVERSE : PRINT "LIST": NORMAL
7005 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7010 PRINT "5.EXECUTE THE PROGRAM BY TYPING THE COMMAND ";: INVERSE : PRINT "RUN": PRINT : PRINT "PROGRAM OUTPUT AFTER ";: INVERSE : PRINT "RUN": NORMAL : PRINT : PRINT "PAY EQUALS 200"
7015 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7020 PRINT "6.SAVE THE PROGRAM (ON SEPARATE DISK):": PRINT : INVERSE : PRINT "SAVE";: NORMAL : PRINT "<PROGRAM NAME>": PRINT : PRINT "NOTE:-MAX LENGTH 30 CHARACTERS, AND THE FIRST MUST BE A LETTER."
7050 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7055 PRINT "NOTE:- PROVIDED THE PROMPT SYMBOL ']' ISSHOWING, ALONG WITH THE CURSOR AT THE LEFT OF THE SCREEN, THE COMPUTER MAY BE USED IN 'DIRECT' MODE, I.E. WITHOUT LINENUMBERS, E.G.": PRINT : PRINT "]PRINT P": PRINT
7056 PRINT "THIS COMMAND WILL RESPOND WITH THE VALUE200 AFTER THE ABOVE PROGRAM HAS BEEN RUN.": PRINT
7210 TEXT : HOME : GOSUB 505: PRINT : POKE 34, PEEK(37): HOME : INVERSE : PRINT "BRANCHING/LOOPING": NORMAL
7240 PRINT "THE FIRST PROGRAM (ABOVE) IS RATHER LIMITED, AS AMONG OTHER THINGS IT CATERSFOR ONLY ONE EMPLOYEE. WE WILL EXPAND THIS, PROVIDING MORE DATA, AND USING A BRANCH INSTRUCTION ";: INVERSE : PRINT "GOTO";: NORMAL : PRINT "."
7245 PRINT
7250 PRINT : PRINT "WE MAY ADD THE FOLLOWING LINES TO THE ABOVE PROGRAM:": PRINT : PRINT "45 GOTO 10": PRINT "65 DATA 50,4,44,6,40,4": GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7285 TEXT : HOME : GOSUB 600: PRINT : POKE 34, PEEK(37): HOME : PRINT "RE-LISTING THE PROGRAM WILL SHOW THE EXTRA LINES IN THEIR PLACE, AS ABOVE.": PRINT
7300 PRINT "NOTE THAT BOTH ";: INVERSE : PRINT "READ";: NORMAL : PRINT " AND ";: INVERSE : PRINT "DATA";: NORMAL : PRINT " STATEMENTS"
7310 PRINT "MAY CONTAIN MULTIPLE VARIABLES/DATA ITEMS, AS LONG AS THEY ARE SEPARATED BY COMMAS (NONE AT END OF STATEMENT LINE, HOWEVER)."
7320 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7330 INVERSE : PRINT "EXPLANATION": NORMAL
7340 PRINT "THE COMPUTER SETS UP A LIST OF DATA AVAILABLE TO THE PROGRAM IN THE ORDER INWHICH IT HAS BEEN ENTERED IN THE PROGRAMSTATEMENT LINES."
7345 PRINT
7350 PRINT "LINE 45 SETS UP A ";: INVERSE : PRINT "LOOP";: NORMAL
7360 PRINT " IN THE PROGRAM, AS EVERY TIME THE COMPUTER REACHES LINE 45 IT RETURNS TO LINE 10 AND READS ANOTHER VALUE FOR 'H'. ACCORDING AS DATAITEMS ARE 'READ' A POINTER MOVES ALONG TO THE NEXT DATA ITEM."
7370 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7380 PRINT "THE SECOND TIME AROUND THE 'LOOP' THE VALUE 50 WILL REPLACE THE VALUE 40 FOR THE VARIABLE 'H'. SIMILARLY 'R' WILL HAVE A NEW VALUE 4, ETC."
7390 PRINT
7400 PRINT "WHEN THE LAST DATA ITEM HAS BEEN READ THE COMPUTER WILL STILL LOOK FOR ANOTHERDATA ITEM WHEN IT RETURNS TO LINE 10. ASTHERE IS NOW NO MORE DATA AN 'OUT OF DATA' ERROR MESSAGE WILL BE OUTPUT."
7410 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7420 PRINT "DESPITE THE ERROR MESSAGE THE RESULTS WILL STILL BE OUTPUT."
7425 PRINT
7430 PRINT "THE 'PROBLEM' OF THE ERROR MESSAGE CAN BE SOLVED IN THE NEXT SECTION."
7435 PRINT
7440 PRINT "NOTE THAT ";: INVERSE : PRINT "GOTO";: NORMAL : PRINT " IS REFERRED TO AS AN UNCONDITIONAL BRANCH OR JUMP."
7445 PRINT
7450 PRINT "IN THE NEXT SECTION YOU WILL BEGIN THE CONDITIONAL BRANCH/JUMP STATEMENT": INVERSE : PRINT "IF-THEN";: NORMAL : PRINT "."
7460 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7470 RETURN
7600 REM
7610 TEXT : HOME
7615 PRINT TAB( 9);
7620 INVERSE : PRINT "CONDITIONAL BRANCHING": NORMAL
7621 PRINT : POKE 34,2: HOME
7630 PRINT "IN ORDER TO PROCESS LISTS OF DATA, EACH GROUP IN A SIMILAR WAY, WE USED A LOOP. HOWEVER, AS THE COMPUTER DID NOT KNOW WHEN TO STOP WE ENDED UP WITH AN ERROR MESSAGE."
7635 PRINT
7640 PRINT "WE MAY AVOID THESE ERROR MESSAGES BY ADDING AN EXTRA 'ROGUE' VALUE AS A TERMINATOR, OR SIGNAL TO TO THE COMPUTERTHAT THERE ARE NO MORE DATA ITEMS IN THECURRENT LIST. IT IS SOMETIMES CALLED A 'DUMMY' VALUE."
7645 PRINT
7650 PRINT "THIS FICTICIOUS VALUE CHOSEN WILL OF COURSE BE A VALUE OUTSIDE THE NORMAL RANGE OF VALUES FOR THE VARIABLE IN QUESTION, E.G. A NEGATIVE VALUE, ZERO, 9999, ZZZZ, ETC., DEPENDING ON THE CIRCUMSTANCES."
7655 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7660 PRINT "HAVING ADDED THE TERMINATOR, IT IS NECESSARY TO CHECK THE VALUE OF THE VARIABLE IN QUESTION EACH TIME AROUND THE LOOP TO SEE IF IT IS THE TERMINATOR.WE DO THIS USING THE CONDITIONAL BRANCHING STATEMENT ";
7670 INVERSE : PRINT "IF-THEN";: NORMAL : PRINT "."
7675 PRINT
7680 PRINT "WE WILL HAVE ANOTHER LOOK AT THE LAST PROGRAM TO SEE HOW WE MIGHT ADAPT IT."
7685 PRINT
7690 PRINT "AS A ROGUE VALUE WE COULD CHOOSE -1 FOR THE NO.OF HOURS (NOBODY WORKS -1 HOURS)."
7695 PRINT
7700 PRINT "WE WILL THEN HAVE TO TEST EACH VALUE OF 'H' EVERY TIME WE READ A NEW VALUE FOR IT TO SEE IF IT IS THE TERMINATOR -1."
7710 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7720 TEXT : HOME
7730 GOSUB 600
7740 PRINT : POKE 34, PEEK(37): HOME
7749 PRINT
7750 PRINT "LET US EXAMINE THE PREVIOUS PROGRAM (ABOVE) WHEN WE HAVE ADDED THE FOLLOWINGTWO LINES TO IT:"
7755 PRINT
7760 PRINT "66 DATA -1 (ROGUE VALUE)"
7765 PRINT
7770 PRINT "15 IF H = -1 THEN 70 (CHECKS 'H')"
7780 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7790 TEXT : HOME
7800 GOSUB 700
7810 PRINT : POKE 34, PEEK(37): HOME
7820 PRINT "EACH TIME 'H' RECEIVES A NEW VALUE IN LINE 10 IT IS IMMEDIATELY COMPARED WITH -1 IN LINE 15. IF 'H' IS NOT EQUAL TO -1 THE COMPUTER CONTINUES ON WITH LINE 20. IT IS ONLY WHEN THE CONDITION IN LINE 15 IS ";
7830 INVERSE : PRINT "TRUE";: NORMAL : PRINT " THAT CONTROL PASSES TO LINE 70, I.E. WHEN THE TERMINATOR -1 HASBEEN READ."
7840 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
7850 RETURN
8000 REM
8010 TEXT : HOME
8015 PRINT TAB( 10);
8020 INVERSE : PRINT "RELATIONAL OPERATORS": NORMAL
8021 PRINT
8022 POKE 34,2: HOME
8024 PRINT "WE MAY COMPARE TWO VARIABLES OR EXPRESSIONS FOR EQUALITY, INEQUALITY, ORWE MAY COMPARE THEM TO SEE IF ONE IS GREATER THAN ANOTHER, ETC.": PRINT
8026 PRINT "A TABLE OF RELATIONAL OPERATORS FOLLOWS ALONG WITH SOME EXAMPLES.": PRINT : PRINT "FOR THE EXPERIENCED PROGRAMMER SOME SYSTEMS (INCLUDING APPLE) ALLOW THE LOGICAL OPERATORS ";
8027 INVERSE : PRINT "AND, OR, NOT";: NORMAL : PRINT ", BUT THESE ARE NOT DEALT WITH HERE."
8028 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8029 W = 10
8030 PRINT TAB( W);"= EQUALS"
8040 PRINT TAB( W);"< LESS THAN"
8050 PRINT TAB( W);"> GREATER THAN"
8060 PRINT TAB( W);"<= LESS THAN OR EQUAL TO"
8070 PRINT TAB( W);">= GREATER THAN OR EQUAL TO"
8080 PRINT TAB( W);"<> NOT EQUAL TO"
8085 PRINT
8090 PRINT "NOTE THAT WITH EACH OF THE LAST THREE OPERATORS TWO SEPARATE SYMBOLS ARE NECESSARY."
8095 PRINT
8100 INVERSE : PRINT "EXAMPLES": NORMAL
8105 PRINT
8110 PRINT "10 IF A = B THEN 100": PRINT
8120 PRINT "20 IF A < B THEN 200": PRINT
8130 PRINT "30 IF A <= B THEN 300": PRINT
8135 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8136 VTAB 10
8140 PRINT "NOTE:- SOME SYSTEMS (INCLUDING APPLE) ALLOW A STATEMENT INSTEAD OF A LINE NUMBER AFTER THE ";
8250 PRINT "SOMETIMES PROGRAMS ARE REQUIRED WHICH CAN ACCEPT DIFFERENT DATA ON DIFFERENT OCCASIONS. THE DATA MAY NOT BE AVAILABLEWHEN THE PROGRAM IS BEING WRITTEN. USING'READ/DATA' STATEMENTS ON OCCASIONS LIKETHIS CAN BE AWKWARD."
8255 PRINT
8260 PRINT "FORTUNATELY WE HAVE AN ALTERNATIVE IN THE ";: INVERSE : PRINT "INPUT";: NORMAL : PRINT " STATEMENT.";
8270 PRINT " WITH THIS STATEMENTTHE DATA ITEMS ARE ENTERED AT THE KEYBOARD WHEN THE PROGRAM IS BEING ";: INVERSE : PRINT "RUN";: NORMAL : PRINT "."
8275 PRINT
8280 PRINT "THIS IS IN RESPONSE TO QUESTIONS PUT TO THE USER BY THE COMPUTER. EACH TIME THE USER ANSWERS THE QUESTION OR PROVIDES DATA, THE COMPUTER EITHER ASKS FOR MORE OR REPLIES WITH RESULTS UNTIL THE PROGRAM IS FINISHED."
8290 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8300 TEXT : HOME : GOSUB 800
8310 PRINT : POKE 34, PEEK(37): HOME
8320 PRINT "HERE WE HAVE FURTHER AMENDED THE HOURLY PAY PROGRAM FOR INTERACTION. NOTE THAT THE DATA ITEMS ARE NOT NEEDED WITHIN THEPROGRAM AS THEY ARE PROVIDED WHEN IT IS BEING EXECUTED."
8325 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8330 PRINT "WE HAVE DOCUMENTED THE PROGRAM FOR THE USER WITH EXTRA MESSAGES BEING OUTPUT."
8340 INVERSE : PRINT "INPUT";: NORMAL : PRINT " MAY INCORPORATE MESSAGES IN DOUBLEQUOTES,FOLLOWED BY A SEMI-COLON AND THENTHE VARIABLE(S),WITH COMMAS AS SEPARATORS."
8345 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8350 INVERSE : PRINT "INPUT";: NORMAL : PRINT " MAY BE USED WITHOUT ANY MESSAGE INCORPORATED, BUT IF SO THEN APPROPRIATEMESSAGES SHOULD BE OUTPUT IN SEPARATE "
8360 INVERSE : PRINT "PRINT";: NORMAL : PRINT " STATEMENTS."
8361 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8362 PRINT : INVERSE : PRINT "EXAMPLES": NORMAL : PRINT
8368 PRINT "NOTE:- NO SEMI-COLONS IN 'INPUT' STATEMENTS WITHOUT COMMENTS, COMMAS AS SEPARATORS ONLY."
8370 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8380 PRINT "NOTE THAT PROGRAMS SHOULD ALWAYS BE DESIGNED FOR THE ";: INVERSE : PRINT "USER";: NORMAL
8390 PRINT " WHO MAY NEITHER KNOW HOW TO PROGRAM, NOR KNOW WHAT HE ISREQUIRED TO DO WHILE HE IS RUNNING THE PROGRAM."
8395 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8400 PRINT "THE USER SHOULD NOT HAVE TO REFER TO THEPROGRAMMER TO FIND OUT WHAT IS REQUIRED.THE PROGRAM SHOULD BE ADEQUATELY"
8410 INVERSE : PRINT "DOCUMENTED";: NORMAL : PRINT " AND BE INTELLIGIBLE TO THE USER."
8415 PRINT
8420 PRINT "PROGRAM OUTPUT SHOULD ALSO BE READABLE. TO THIS END BLANK LINES MAY BE OUTPUT BYUSING ";: INVERSE : PRINT "PRINT";: NORMAL : PRINT " STATEMENTS ON THEIR OWN, AS IN LINE 41 ABOVE."
8430 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8440 INVERSE : PRINT "RUN";: NORMAL
8445 W = 11
8450 PRINT TAB( W);"ENTER -1 TO TERMINATE PROGRAM"
8630 PRINT "NOT ONLY SHOULD PROGRAMS BE DOCUMENTED FOR THE ";: INVERSE : PRINT "USER";: NORMAL : PRINT " BUT ALSO THEY SHOULD BE DOCUMENTED FOR ANY PROGRAMMER (INCLUDINGTHE PROGRAM WRITER HIMSELF).": PRINT
8640 PRINT "EVEN EXPERIENCED PROGRAMMERS FIND THAT PROGRAMS ARE DIFFICULT TO FOLLOW AND/OR AMEND UNLESS THEY ARE WELL DOCUMENTED (INCLUDING PROGRAMS THEY HAVE WRITTEN THEMSELVES)."
8645 PRINT
8650 INVERSE : PRINT "REM";: NORMAL
8660 PRINT " STATEMENTS SHOULD BE INCLUDED IN PROGRAMS AT THE BEGINNING OF 'ROUTINES' AND WHEREVER THE FUNCTION PERFORMED BY A SECTION OF PROGRAM IS UNCLEAR. THESE STATEMENTS HAVE NO EFFECT ON THE RUNNINGOF A PROGRAM AT ALL. ";
8670 PRINT "THEY ARE MERELY USED AS AN AID TO THE PROGRAMMER TO UNDERSTAND WHAT IS HAPPENING IN THE PROGRAM."
8720 PRINT "N.B. NO QUOTES NEEDED AFTER ";: INVERSE : PRINT "REM";: NORMAL : PRINT "."
8725 PRINT
8730 PRINT "ANY TEXT (INCLUDING STATEMENTS) AFTER": INVERSE : PRINT "REM";: NORMAL : PRINT " ON THE SAME STATEMENT LINE WILL": PRINT "MERELY BE LISTED. THEY WILL HAVE NO": PRINT "EFFECT ON THE RUNNING OF THE PROGRAM."
8735 PRINT
8740 INVERSE : PRINT "EXAMPLES": NORMAL : PRINT
8750 PRINT "10 REM WAGES PROGRAM"
8755 PRINT
8760 PRINT "200 REM CALCULATE DEDUCTIONS"
8765 PRINT
8770 PRINT "300 REM SORT NAMES ALPHABETICALLY"
8780 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8790 TEXT : HOME
8795 PRINT TAB( 11);
8800 INVERSE : PRINT "THE STOP STATEMENT": NORMAL : PRINT
8810 INVERSE : PRINT "END";: NORMAL
8820 PRINT " IS NORMALLY USED AS THE VERY LAST STATEMENT IN A PROGRAM. IF THERE IS A REASON FOR STOPPING A PROGRAM AT ANY OTHER POINT A ";: INVERSE : PRINT "STOP";: NORMAL : PRINT " STATEMENT MAY BE USED."
8825 PRINT
8830 PRINT "THE COMPUTER MAY THEN BE USED IN DIRECT MODE, E.G. TO EXAMINE CURRENT VALUES OF VARIABLES, ETC."
8835 PRINT
8840 INVERSE : PRINT "EXAMPLE": NORMAL
8850 PRINT "PRINT X (NO LINE NUMBER)"
8860 PRINT "5 (IF X=5 JUST THEN)"
8865 PRINT : PRINT
8870 PRINT "A PROGRAM MAY BE CONTINUED AFTER AN INTERRUPTION (IF APPROPRIATE) BY TYPING THE DIRECT COMMAND ";: INVERSE : PRINT "CONT";: NORMAL
8880 PRINT ", PROVIDED THAT THE PROGRAM ITSELF HAS NOT BEEN CHANGED,OR AN ERROR ENCOUNTERED."
8890 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
8995 PRINT TAB( 9);
9000 INVERSE : PRINT "THE RESTORE STATEMENT": NORMAL
9010 VTAB 8
9020 PRINT "IF THERE IS ANY REASON FOR RE-SETTING THE DATA POINTER TO THE BEGINNING OF THEDATA LIST IN A PROGRAM USING ";: INVERSE : PRINT "READ/DATA": NORMAL
9030 PRINT "STATEMENTS, ALL THAT IS REQUIRED IS A": INVERSE : PRINT "RESTORE";: NORMAL : PRINT " STATEMENT."
9035 PRINT : PRINT
9040 INVERSE : PRINT "SYNTAX": NORMAL
9050 PRINT "<LINENUMBER>";: INVERSE : PRINT "RESTORE";: NORMAL
9051 PRINT : PRINT
9055 PRINT : INVERSE : PRINT "EXAMPLE";: NORMAL : PRINT
9060 PRINT "100 RESTORE"
9070 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9080 RETURN
9100 REM
9110 TEXT : HOME
9115 PRINT TAB( 6);
9120 INVERSE : PRINT "MORE ABOUT THE PRINT STATEMENT": NORMAL
9125 PRINT
9130 INVERSE : PRINT "PRINT";: NORMAL : PRINT " MAY BE USED AS IN THE FOLLOWING:"
9135 PRINT
9140 INVERSE : PRINT "MESSAGES";: NORMAL
9142 W = 13
9145 PRINT TAB( W);"10 PRINT " CHR$(34)"THIS IS A MESSAGE" CHR$(34)
9150 INVERSE : PRINT "VARIABLES";: NORMAL
9155 PRINT TAB( W);"20 PRINT A,B3;C6"
9159 PRINT
9160 INVERSE : PRINT "EXPRESSIONS";: NORMAL
9165 PRINT TAB( W);"30 PRINT A*(B-C)^D"
9169 PRINT
9170 PRINT "ALTERNATIVELY, ANY COMBINATION OF THE ABOVE MAY BE USED."
9175 PRINT : POKE 34, PEEK(37): HOME
9176 PRINT
9180 PRINT "FROM THE USER POINT OF VIEW OUTPUT SHOULD BE READABLE. MESSAGES WITHIN DOUBLE QUOTES IN PRINT STATEMENTS WILL ALWAYS BE PRINTED ";: INVERSE : PRINT "AS THEY ARE";: NORMAL : PRINT ", SPACES INCLUDED.";
9190 PRINT " SO IF YOU WISH TO HAVE SPACES IN YOUR OUTPUT, BE SURE TO ALLOW FOR THEM IN YOUR PRINT STATEMENTS."
9200 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9210 INVERSE : PRINT "TERMINATOR/DELIMITERS IN PRINT": NORMAL
9215 PRINT : POKE 34, PEEK(37): HOME
9220 INVERSE : PRINT "PRINT";: NORMAL : PRINT " ON ITS OWN FORCES NEXT OUTPUT TO ANEW LINE, I.E. A BLANK LINE IS USUALLY OUTPUT, UNLESS THE CURRENT LINE IS UNFINISHED."
9225 PRINT
9230 PRINT "NO TERMINATOR IN A PRINT STATEMENT, AS IN EXAMPLES ABOVE, MEANS NEXT OUTPUT WILL BE ON A NEW LINE."
9240 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9250 PRINT "A SEMI-COLON ";: INVERSE : PRINT ";";: NORMAL : PRINT " MEANS THE NEXT ITEM TO BEOUTPUT WILL BE PRINTED IN THE NEXT AVAILABLE POSITION, AS IN LINE 20 ABOVE (C6)."
9255 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9260 PRINT "A COMMA ";: INVERSE : PRINT ",";: NORMAL
9262 PRINT " MEANS THAT THE NEXT ITEM TO BEOUTPUT WILL BE PRINTED IN THE NEXT FIELD(ZONE) AVAILABLE. THE APPLE SCREEN IS DIVIDED INTO 3 FIELDS OF 16, 16, AND 8 COLUMNS RESPECTIVELY. THE ITEM WILL BE OUTPUT STARTING IN THE LEFT OF FIELD."
9270 PRINT "B3 IN LINE 20 ABOVE WILL START IN COL.17";
9280 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9290 POKE 34,2: HOME
9300 INVERSE : PRINT "EXAMPLES";: NORMAL : PRINT
9310 PRINT "ASSUMING THAT A=4, B=5, AND C=6 THE OUTPUT FOR THE FOLLOWING WILL BE AS SHOWN:": PRINT
9345 INVERSE : PRINT "NOTE";: NORMAL : PRINT ":- SOME SYSTEMS WILL OUTPUT A SPACE BEFORE/AFTER NUMBERS, BUT NOT APPLE."
9350 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9360 PRINT "WHERE THE FIELDS ARE UNSUITABLE FOR OUTPUT THE ";: INVERSE : PRINT "TAB";: NORMAL : PRINT " FUNCTION MAY BE USED FOR MORE FLEXIBLE LAYOUT."
9365 PRINT
9370 PRINT "THE USER CAN ARRANGE THAT OUTPUT BE PRINTED IN ANY DESIRED COLUMN 1-40 ACROSS THE SCREEN."
9760 PRINT "FURTHER DETAILS:": PRINT : POKE 34, PEEK(37): HOME
9770 PRINT "ROUNDING DOWN": PRINT "============="
9772 PRINT "USED E.G. WHEN CALCULATING THE NUMBER OFCOMPLETE ARTICLES THAT CAN BE PRODUCED FROM A GIVEN VOLUME OF RAW MATERIALS - IN THIS CASE ALWAYS ROUND DOWN."
9773 PRINT : PRINT
9774 PRINT "USE INT FUNCTION,E.G.": PRINT : PRINT "INT(6.4)=6 AND INT(6.5)=6"
9775 PRINT : PRINT
9776 FLASH : PRINT "WARNING";: NORMAL : PRINT " INT(-6.4)=-7"
9780 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9790 PRINT "ROUNDING OFF": PRINT "============"
9792 PRINT "AS IN NORMAL MATHEMATICAL CALCULATIONS. IF DIGIT AFTER DECIMAL POINT IS LESS THAN 0.5, THEN IGNORE, OTHERWISE INCREASE PREVIOUS POSITION BY 1."
9793 PRINT
9794 PRINT : PRINT "PROGRAMMING: HAVING INCREASED THE NUMBERBY 0.5, USE THE 'INT' FUNCTION ON IT, E.G.": PRINT
9818 PRINT : PRINT "PROBLEM:- WHAT HAPPENS IF THE ORIGINAL VALUE IS AN INTEGER ?"
9820 GOSUB 900: IF Z9$ = CHR$(27) THEN RETURN
9830 PRINT "ROUNDING OFF TO 2 DECIMAL PLACES": PRINT "================================"
9832 PRINT "AS IS DONE IN MONEY PROBLEMS": PRINT : PRINT
9834 PRINT "IN PROGRAMMING, MULTIPLY BY 100, THEN ROUND OFF BY ADDING 0.5 AND USING THE INT FUNCTION, AND FINALLY DIVIDE THE RESULT BY 100, E.G.": PRINT